MySQLi 全稱 MySQL Improved extension, 算是 MySQL extension 的加強版, 本來 PHP 只提供 MySQL Extension 來連接 MySQL 資料庫, 後來在 PHP 5.0.0 引入了 mysqli, 也在 PHP 5.3 時將 MySQL 原生啟動器(Native Driver) 包含進 PHP, 到了 PHP 5.5 棄用 mysql extension, PHP 7.0 就將 mysql extension 移除了, mysql extension 是提供函數 API 支持程序式開發, 而 mysqli 是有函數 API 也有提供物件導向的介面支持物件導向程式開發.
先在本機的 MySQL 建立 mydb 資料庫, 建立 tUser 資料表
程序式寫法
<?php
$DB_HOST = 'localhost'; // 主機
$DB_USER = 'root'; // 登入 MySQL server 的帳號
$DB_PASS = 'password'; // 密碼
$DB_NAME = 'mydb'; // 要登入的資料庫名稱
$connection = mysqli_connet($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME, $DB_NAME);
if ($connection) {
$query = 'SELECT * from tUser';
$result = mysqli_query($connection, $query);
$data = mysqli_fetch_array($result);
var_dump($data);
} else {
die("連接失敗: " . mysqli_connect_error());
}
物件導向寫法
<?php
$DB_HOST = 'localhost'; // 主機
$DB_USER = 'root'; // 登入 MySQL server 的帳號
$DB_PASS = 'password'; // 密碼
$DB_NAME = 'mydb'; // 要登入的資料庫名稱
$connection = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME, $DB_NAME);
if ($connection->connect_error) {
die("連接失敗: " . $connection->error);
} else {
$query = 'SELECT * from tUser';
$result = $connect->query($connection, $query);
$data = $result->fetch_array();
var_dump($data);
}